# 函数 的参数(【必选参数】,【默认参数】,【可变参数】,【关键字参数】)
# add  是必选参数示例
# funa 是默认参数示例
# funb 是可变参数示例
# func 是关键字参数示例

def add(a, b):
    print('\n' * 3)
    print(f'执行add 参数a:{a},参数b:{b}')
    print('add(a, b),【参数必传的】')
    return a + b

def funa(a,b=10):
    print('\n' * 3)
    print(f'执行funa 参数a:{a},参数b:{b}')
    print('funa(a,b=10) 给b设置默认值,b不传就默认10,【参数是可以不传的】')
    return a + b

def funb(*args):
    print('\n' * 3)
    print(f'执行funb 参数args:{args},args的类型{type(args)}')
    print('funb(*args) 是可变参数函数 可变参数函数的形参 是*参数名,【参数是可以不传的】')
    return args

def func(**key):
    print('\n' * 3)
    print(f'执行func key:{key},key的类型{type(key)}')
    print('func(**key) 是可变参数函数 可变参数函数的形参 是**参数名,【参数是可以不传的】')
    return key

result = add(5 ,6)
print(f'result:{result}')

result = funa(5)
print(f'result:{result}')

result = funa(a=7, b=11)
print(f'result:{result}')

result = funb(1, 2)
print(f'result:{result}')

result = funb()
print(f'result:{result}')

result = funb('黄', '飞')
print(f'result:{result}')

result = func(a=1, b=2, c=10)
print(f'result:{result}')

result = func()
print(f'result:{result}')


